//
// Ephi - simulation of magnetic fields and particles
// Copyright (C) 2007, 2008 Indrek Mandre <indrek(at)mare.ee>
// For more information please see http://www.mare.ee/indrek/
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along
// with this program; if not, write to the Free Software Foundation, Inc.,
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//

#ifndef __ephi_hpp__
#define __ephi_hpp__

#include <math.h>
#include <float.h>
#include <stdarg.h>
#include <limits.h>
#include <string.h>

class Ephi
{
public:
  static void debug (int level, const char *fmt, ...);
  static void debug (int level, const char *fmt, va_list ap);
  static void setDebugLevel (int level) { debug_level = level; }

  enum { DEBUG_CRITICAL = 1, DEBUG_ERROR = 2, DEBUG_WARN, DEBUG_APP = 9, DEBUG_INFO = 10 };

private:
  static int debug_level;
};

#if LONG_MAX == 2147483647L
  #define LONG_IS_32BIT
#endif

#include "math3d.hpp"
#include "matrix.hpp"
#include "consts.hpp"
#include "utils.hpp"
#include "statics.hpp"
#include "coil.hpp"
#include "dynamics.hpp"
#include "screen.hpp"
#include "scene.hpp"
#include "config.hpp"
#include "polywell_conf.hpp"
#include "threading.hpp"
#include "coildata.hpp"
#include "potential.hpp"
#include "octree.hpp"
#include "pmap.hpp"
#include "plasma.hpp"

#endif

